package ig.metrica.ui;

import ig.finanzas.ManejadorBandas;
import ig.metrica.escenario.GeneraEscenarioBean;
import ig.metrica.origenesdedatos.OrigenDeDatosBean;
import ig.metrica.origenesdedatos.OrigenesdatosDTO;
import java.rmi.RemoteException;
import java.util.Date;
import javax.naming.NamingException;

public class ServiceLocator {
    
    private static ServiceLocator instancia = null;    
    
    public String GenerarEscenario(Date fecha,String modelo,boolean debug,boolean datosActuales,ManejadorBandas bandasLiquidez, ManejadorBandas bandasRiesgo)throws NamingException, RemoteException{
        try {
            GeneraEscenarioBean  escenario = new GeneraEscenarioBean();
            return escenario.procesarEscenario(fecha,modelo,debug,datosActuales,bandasLiquidez,bandasRiesgo);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public String GenerarEscenario(Date fecha,String modelo,String nombreEscenario,GeneraEscenarioBean escenario,boolean debug,boolean datosActuales,ManejadorBandas bandasLiquidez, ManejadorBandas bandasRiesgo)throws Exception{
        try {
            return escenario.procesarEscenario(fecha,modelo,nombreEscenario,debug,datosActuales,bandasLiquidez, bandasRiesgo);
        } catch (Exception e) {
            throw e;
        }
    }

    public OrigenesdatosDTO getOrigenDatos(String entidad) throws NamingException, RemoteException, Exception{
        try {
            OrigenDeDatosBean origenDeDatosBean = new OrigenDeDatosBean();
            return new OrigenDeDatosBean().ejbFindByPrimaryKey( origenDeDatosBean.ejbFindByNombreEntidad( entidad ) ).getOrigenesdatosDTO();
        } catch (Exception e) {
            throw new NamingException(e.toString());
        }
    }    

    public static ServiceLocator getInstancia(){
        if (instancia==null){
            return instancia = new ServiceLocator();
        }else{
            return instancia;
        }
    }
 
    
}
